package com.kusen.stream;

import java.util.Arrays;
import java.util.Date;
import java.util.List;
import java.util.concurrent.atomic.AtomicBoolean;

/**
 * 练习完了函数是编程，那现在就写一下流式编程
 * 在jdk1.8的编入了流式编程。stream
 * 好处：很简洁的书写了代码。不需要写很多的代码。就像是数据写sql一样
 * <p>
 * 需求：找出年龄大于24，并且将addr 的字段转成大写并倒叙获取到前一条数据 倒叙还不知道从集合中获取对象的字段来排序，待完成 使用这个sorted()来完成
 */
public class TreamTest {

    public static void main(String[] args) {
//        //打印本机电脑的核心线程数量
//        System.out.println("本机的核心线程数为："+Runtime.getRuntime().availableProcessors());
//        User user1=new User(21,"A","a");
//        User user2=new User(22,"B","b");
//        User user3=new User(23,"C","c");
//        User user4=new User(24,"D","d");
//        User user5=new User(22,"E","e");
//        User user6=new User(22,"F","f");
//        User user7=new User(29,"A","a");
//        User user8=new User(22,"P","b");
//        User user9=new User(30,"C","c");
//        User user11=new User(24,"K","d");
//        User user12=new User(22,"H","e");
//        User user13=new User(22,"S","f");
//        List<User> result= Arrays.asList(user1,user2,user3,user4,user5,user6);
//        List<User> result2= Arrays.asList(user7,user8,user9,user11,user12,user13);
//        //2021.01.06练习连个集合中有数据一样的过滤
//        result.stream().filter(e -> {
//            for (User user : result2) {
//                if(user.getAge().intValue()==e.getAge().intValue()){
//                    return true;
//                }
//            }
//              return false;
//        }).forEach(System.out::println);
//
////        Function<User,List<User>> fun=t->{
////            List<User> users=new ArrayList<>();
////            t.setAddr(t.getAddr().toUpperCase());
////            users.add(t);
////            return users;
////        };
//        //将list转换成stream流
//        //result.stream().filter(t->{return t.age>24;}). map(t->fun.apply(t)).limit(10).forEach(System.out::println);
//       //
//    }
//  static  class User {
//        private Integer age;
//        private String name;
//        private String addr;
//
//      @Override
//      public String toString() {
//          return "User{" +
//                  "age=" + age +
//                  ", name='" + name + '\'' +
//                  ", addr='" + addr + '\'' +
//                  '}';
//      }
//
//      public User() {
//        }
//
//        public User(Integer age, String name, String addr) {
//            this.age = age;
//            this.name = name;
//            this.addr = addr;
//        }
//
//        public Integer getAge() {
//            return age;
//        }
//
//        public void setAge(Integer age) {
//            this.age = age;
//        }
//
//        public String getName() {
//            return name;
//        }
//
//        public void setName(String name) {
//            this.name = name;
//        }
//
//        public String getAddr() {
//            return addr;
//        }
//
//        public void setAddr(String addr) {
//            this.addr = addr;
//        }

        java.text.SimpleDateFormat sdfLongTimePlus = new java.text.SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        System.out.println(sdfLongTimePlus.format(new Date(1615952091706l)));
    }

}
